﻿/**
 * 
 * Copyright 2009 Mike Jamer [email: mikejamer@gmail.com ]
 * 
 * This File is part of Moose IRC
 * 
 * MooseIRC is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * MooseIRC is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with MooseIRC.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace mooseirc.irc {

    /// <summary>
    /// Enumerated Channel Modes
    /// </summary>
    /// <remarks>
    /// This is just in here waisting space right now.  I don't think this is the best way to handle
    /// this really, but I havent really put any thought into it yet.  So, this will probably change, this 
    /// enumeration will likely not even exist.
    /// </remarks>
    [CLSCompliant(true)]
    [Flags]
    public enum IrcChannelMode : byte {

        /// <summary>
        /// No Modes Set
        /// </summary>
        None = 0x0,

        /// <summary>
        /// Only Ops Set Topic
        /// </summary>
        OnlyOpsSetTopic = 0x1,

        /// <summary>
        /// No External Messages
        /// </summary>
        NoExternalMessages = 0x2,

        /// <summary>
        /// Invite Only
        /// </summary>
        InviteOnly = 0x4,

        /// <summary>
        /// Moderated
        /// </summary>
        Moderated = 0x8,

        /// <summary>
        /// Private Key Set
        /// </summary>
        Key = 0x10,

        /// <summary>
        /// Limit Number of Users To
        /// </summary>
        Limit = 0x20,

        /// <summary>
        /// Private Channel
        /// </summary>
        Private = 0x40,

        /// <summary>
        /// Secret
        /// </summary>
        Secret = 0x80


    }
}
